package com.fangyi.yunmusic.utils;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 封装分页后的数据格式
 */
public class PagedResult {

    private int page;   // 当前页数
    private int pages;  // 总页数
    private long total;   // 总记录数
    private List<?> rows;   // 每行显示的内容

    public static PagedResult pagedResult(List<?> list) {

        if (!(list instanceof Page)) {
            throw new RuntimeException("Not support");
        }

        PageInfo<?> pageInfo = new PageInfo<>(list);

        PagedResult pagedResult = new PagedResult();
        // 得到页码
        pagedResult.setPage(pageInfo.getPageNum());
        // 得到总页数
        pagedResult.setPages(pageInfo.getPages());
        // 得到数据
        pagedResult.setRows(list);
        // 得到总记录数
        pagedResult.setTotal(pageInfo.getTotal());

        return pagedResult;
    }

    public PagedResult() {
    }

    public PagedResult(List<?> list, int pageNum, int pages, long total) {
        // 得到页码
        setPage(pageNum);
        // 得到总页数
        setPages(pages);
        // 得到数据
        setRows(list);
        // 得到总记录数
        setTotal(total);
    }

    public int getPage() {
        return page;
    }

    public void setPage(int page) {
        this.page = page;
    }

    public int getPages() {
        return pages;
    }

    public void setPages(int pages) {
        this.pages = pages;
    }

    public long getTotal() {
        return total;
    }

    public void setTotal(long total) {
        this.total = total;
    }

    public List<?> getRows() {
        return rows;
    }

    public void setRows(List<?> rows) {
        this.rows = rows;
    }
}
